Correlating nameserver IPv6 and IPv4 addresses

ABSTRACT

Nameserver addresses are correlated in a multi-tier name server hierarchy comprising a first level authority for a domain, and one or more second level authorities to which the first level authority delegates with respect to a particular sub-domain associated with the domain. Preferably, the first level authority is IPv4-based and at least one second level authority is IPv6-based. The first level authority responds to a request issued by a client caching nameserver (a “CCNS”) and returns an answer that includes both IPv4 and IPv6 authorities for the domain. The CCNS is located at an IPv4 source address that is passed along to the first level authority with the CCNS request. The first level authority encodes the CCNS IPv4 source address in the IPv6 destination address of at least one IPv6 authority. Then, when the CCNS then makes a follow-on IPv6 request (with respect to the sub-domain) directed to the IPv6 authority, the IPv6 authority knows both the IPv6 address of the CCNS (as well as its IPv4 address. The IPv6 authority maintains the IPv4-IPv6 correlation. Over time, the IPv6 authority builds up a database of these CCNS IPv6-IPv4 associations.

BACKGROUND Technical Field

This application relates generally to Internet addressing.

Brief Description of the Related Art

Internet resources are located using so-called Internet Protocol (IP)addresses. Internet Protocol v4 (IPv4) is the current Internetaddressing scheme. The world, however, is running out of v4 IP addressesas reported by the service organizations that maintain them. Inparticular, IANA has reported that it will be out of IPv4 addresses toallocate as of July 2011, and ARIN, RIPE and APNIC report that they willbe out of addresses to hand out as of April 2012. Moreover, before theaddresses run out completely, they will become expensive to obtain.

The next generation Internet addressing scheme is IPv6. A key feature ofIPv6 is that IP addresses are 128 bits long, as opposed to the 32 bitsthat are used for IPv4 addresses. This is a substantial increase inaddress length. IPv6 addresses generally are written as eight groups offour-digit hexadecimal numbers. Further information about IPv6 addressesis available in Internet Request for Comment (RFC) 4291. Domain nameservice (DNS) extensions to support IPv6 are described in RFC 3596.

Distributed computer systems are well-known in the prior art. One suchdistributed computer system is a “content delivery network” or “CDN”that is operated and managed by a service provider. The service providertypically provides the content delivery service on behalf of thirdparties. A “distributed system” of this type typically refers to acollection of autonomous computers linked by a network or networks,together with the software, systems, protocols and techniques designedto facilitate various services, such as content delivery or the supportof outsourced site infrastructure. Typically, “content delivery” meansthe storage, caching, or transmission of content, streaming media andapplications on behalf of content providers, including ancillarytechnologies used therewith including, without limitation, DNS queryhandling, provisioning, data monitoring and reporting, contenttargeting, personalization, and business intelligence.

BRIEF SUMMARY

According to an embodiment of this disclosure, a method of correlatingnameserver addresses is implemented in a multi-tier name serverhierarchy comprising a first level authority (typically a nameserver)for a domain, and one or more second level authorities (typically, eacha nameserver) to which the first level authority delegates with respectto a particular sub-domain associated with the domain. Preferably, thefirst level authority is IPv4-based and at least one second levelauthority is IPv6-based. The first level authority responds to a requestissued by a client caching nameserver (a “CCNS”) and returns an answerthat includes both IPv4 and IPv6 authorities for the domain. The CCNS islocated at an IPv4 source address that is passed along to the firstlevel authority with the CCNS request. According to a feature of thisdisclosure, the first level authority encodes the CCNS IPv4 sourceaddress in the IPv6 destination address of at least one IPv6 authority.Then, when the CCNS then makes a follow-on IPv6 request (with respect tothe sub-domain) directed to the IPv6 authority, the IPv6 authority knowsboth the IPv6 address of the CCNS (by virtue of having received it inassociation with the request) as well as its IPv4 address (by virtue ofthe encoding). The IPv6 authority maintains the IPv4-IPv6 correlation.Over time (i.e., as other CCNSs make requests), the IPv6 authoritybuilds up a database of these CCNS IPv6-IPv4 associations.

Following a complete DNS resolution of the sub-domain, typically amachine (e.g., a content server) is identified at some IPv6 destinationaddress. When a requesting client (also operating via IPv6) then makes acontent request to that machine IP address, that content request hasassociated therewith both (i) a source IP address of the requestingclient; as well as (ii) an IPv6 destination address. As a result of theabove-described technique, the destination address is an IPv6 addressthat encodes an IPv4 address of a client caching nameserver (CCNS) fromwhich the requesting client obtained (originally from the first levelauthority) the destination address. If desired, the content server thenassociates the source IP address of the requesting client with the IPv4address of the CCNS.

Without limitation, the IPv4 source address may be encoded into the IPv6address in one of several ways, such as by placing the 32 bit IPv4address unmodified in the lowest 32 bits of the IPv6 address, byencrypting the IPv4 address in the low-order bits of the IPv6 address(using as many bits as desired), by cryptographically hashing the IPv4address into the low-order bits of the IPv6 address (using as many bitsas desired), or in any other convenient manner. Regardless of whetherthe IPv4 address is unmodified, encrypted or hashed, the IPv4 address(or its encoding) may also be cryptographically signed into additionallow-order bits of the IPv6 address.

The foregoing has outlined some of the more pertinent features of theinvention. These features should be construed to be merely illustrative.Many other beneficial results can be attained by applying the disclosedinvention in a different manner or by modifying the invention as will bedescribed.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and theadvantages thereof, reference is now made to the following descriptionstaken in conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram illustrating a known distributed computersystem configured as a content delivery network (CDN);

FIG. 2 is a representative CDN machine;

FIG. 3 illustrates a technique for IPv4 address encoding and detectionaccording to the teachings herein; and

FIG. 4 illustrates a more specific example of the disclosed technique inthe context of a CDN name service having a first level nameserver thatreceives IPv4 requests, and a second level nameserver that handles bothIPv4 and IPv6 requests.

DETAILED DESCRIPTION

FIG. 1 illustrates a known distributed computer system in which thetechniques described herein may be implemented. In this representativeembodiment, a distributed computer system 100 is configured as a contentdelivery network (CDN) and is assumed to have a set of machines 102 a-ndistributed around the Internet. Typically, most of the machines areservers located near the edge of the Internet, i.e., at or adjacent enduser access networks. A network operations command center (NOCC) 104 maybe used to administer and manage operations of the various machines inthe system. Third party sites, such as web site 106, offload delivery ofcontent (e.g., HTML, embedded page objects, streaming media, softwaredownloads, and the like) to the distributed computer system 100 and, inparticular, to “edge” servers. Typically, content providers offloadtheir content delivery by aliasing (e.g., by a DNS CNAME) given contentprovider domains or sub-domains to domains that are managed by theservice provider's authoritative domain name service. End users thatdesire such content may be directed to the distributed computer systemto obtain that content more reliably and efficiently. Although not shownin detail, the distributed computer system may also include otherinfrastructure, such as a distributed data collection system 108 thatcollects usage and other data from the edge servers, aggregates thatdata across a region or set of regions, and passes that data to otherback-end systems 110, 112, 114 and 116 to facilitate monitoring,logging, alerts, billing, management and other operational andadministrative functions. Distributed network agents 118 monitor thenetwork as well as the server loads and provide network, traffic andload data to a DNS query handling mechanism 115, which is authoritativefor content domains being managed by the CDN. A distributed datatransport mechanism 120 may be used to distribute control information(e.g., metadata to manage content, to facilitate load balancing, and thelike) to the edge servers.

As illustrated in FIG. 2, a given machine 200 in the CDN comprisescommodity hardware (e.g., an Intel Pentium processor) 202 running anoperating system kernel (such as Linux or variant) 204 that supports oneor more applications 206 a-n. To facilitate content delivery services,for example, given machines typically run a set of applications, such asan HTTP web proxy 207, a name server 208, a local monitoring process210, a distributed data collection process 212, and the like. Forstreaming media, the machine typically includes one or more mediaservers, such as a Windows Media Server (WMS) or Flash 2.0 server, asrequired by the supported media formats. When configured as a CDN “edge”server, the machine shown in FIG. 2 may be configured to provide one ormore extended content delivery features, preferably on adomain-specific, customer-specific basis, preferably using configurationfiles that are distributed to the edge servers using a configurationsystem. A given configuration file preferably is XML-based and includesa set of content handling rules and directives that facilitate one ormore advanced content handling features. The configuration file may bedelivered to the CDN edge server via the data transport mechanism. U.S.Pat. No. 7,111,057 illustrates a useful infrastructure for deliveringand managing edge server content control information, and this and otheredge server control information can be provisioned by the CDN serviceprovider itself, or (via an extranet or the like) the content providercustomer who operates the origin server.

As is well-known, DNS is the standard Internet service responsible fortranslating domain names into IP addresses. Generally, an entity isconsidered “authoritative” for the domains it owns. This means theentity controls the responses that its DNS servers (the authoritativeservers) provide when DNS information is requested. Normally, this meansthe authoritative server responds with the IP address of the serverassociated with a particular domain. The IP address defined in theauthoritative name server is known as an Address or an “A” record. Touse a content delivery network (CDN) service such as described above, acontent provider's name server typically is modified to return (to arequesting client name server) a CNAME record, which points to a CDNservice provider domain. This means a CNAME is returned by the contentprovider's name server, instead of an “A” record that points to the IPaddress of the content provider's Web server. In aliasing a site to theCDN in this manner, the content provider allows the CDN service providerto deliver the content for that domain to its end-users. The CDN nameservers respond with the IP address of a CDN edge server, which thendelivers the content to the end-user on behalf of the content provider.

In a typical DNS, a “resolver” is a client program that is responsiblefor querying name servers to find the IP address for a given domain.

In one known approach, name servers for CDN edge networks use a 2-tierapproach wherein top levels provide delegations to low levels.

As used herein, the following terms have the following meanings:

CCNS refers to a “client caching name server.” This is a nameserver towhich end user resolvers make requests and which provides recursivelyresolved answers. CCNSs make iterative DNS queries to authoritativenameservers on behalf of end-users and typically cache the results.

GTLD refers to Generic Top Level Domain. These are the authorities forsingle component domains, such as “.net” or “.com”.

“Authorities” or “authoritative nameservers” refers to nameservers thatprovide authoritative answers for zones, for which they get delegated toby the parent zone's authorities (e.g. .com delegating akamai.com toakamai.com authorities). These nameservers will eventually be queried byCCNS to resolve end-user queries, and they are typically non-recursive.

Familiarity with IPv6 is assumed. Further information can be found inthe following Internet RFCs: 2460, 2464, 3041, 3056, 3513, 3596, 3964,4193, 4291, 4443, 4861 and 4862. Entities that speak IPv6 use IPv6transit and live on machines with v6 service addresses. Theirconnections are routed over the IPv6 Internet (although possiblytunneled through v4). Entities that understand AAAA records understandthere is IPv6, but they may not be able to (or need to) communicate overit themselves. The choice of whether (or what) to respond to a given DNSrequest is independent from the protocol that a given CCNS uses tocommunicate with an authoritative name server.

By way of brief background, IPv6 addresses are usually written as eightgroups of four hexadecimal digits. If one or more four-digit group(s) is0000, the zeros may be omitted and replaced with two colons. Having morethan one double-colon abbreviation in an address is not permitted. In aURL, the IPv6 address is enclosed in brackets. The top 64 bits of anIPv6 address are intended to be a network prefix, and the bottom 64 bitstypically are the host. Any IPv4 address has a corresponding IPv6address. It is formed from a special prefix of IPv6 address space(::ffff:0:0/96) followed by the value of the IPv4 address. Although allIPv4 addresses can be represented with an IPv6 address, there is noconnectivity implied (between a v4-only and a v6-only machine). As notedabove, DNS has a new resource record, called a quad-A (AAAA) record, forlooking up an IPv6 address. DNS lookups for IPv6 address can beperformed over IPv4.

A representative CCNS is a dual stack machine that has both IPv4 andIPv6 connectivity. Typically, the CCNS is implemented as software, i.e.,computer program instructions executed by a processor. As implemented ina computer memory, the CCNS is tangible and non-transitory. As usedherein, a “dual stack” means that the CCNS includes first instructions(processor-executable) that facilitate IPv4 connectivity, as well assecond instructions (also processor-executable) that facilitate IPv6connectivity. Typically, a dual-stack machine includes at least one CPU,which can be used to process both the IPv4 and IPv6 functionality. Inthe alternative, a single stack machine with more than one CPU canprocess either type of request from any CPU within the machine. A CCNScapable of speaking over IPv6 is assumed to also have some facilityavailable for contacting nameservers over IPv4. The CCNS is expected toresolve names provided to it by end users. As the authorities for anygiven zone might include IPv4 nameservers, the CCNS must be able todirect DNS requests at those v4 authorities (even when asking about themover v6). Thus, as used herein, a CCNS is a nameserver that is capableof operating over both IPv4 and IPv6 and may try to contact othernameservers over either protocol, typically depending on the responsesit receives and perhaps local configuration.

If a delegation to some organization's zone only includes nameserverswith IPv4 addresses, the CCNS is forced to follow the delegation to theorganization's nameservers over IPv4. When the CCNS makes the DNSrequest against the organization's authoritative nameservers, thosenameservers can return delegation records to a sub-zone, and, asdescribed herein, those delegations must include at least one nameserverthat supports IPv6 addressing. In other words, the organization's firstset of nameservers need not support IPv6 while at least one delegated-tonameserver does support IPv6.

According to the teachings herein, an IPv6 authoritative nameserver isprovided with the capability of discovering the IPv4 address of clientcaching nameservers that also operate on IPv6. The IPv6 authoritativenameserver is implemented as software, namely, as a set ofprocessor-executable instructions, typically stored in computer memory(a tangible, non-transitory medium). As noted above, for purposes ofthis disclosure, it is assumed that an IPv6 CCNS (that communicates withthe authoritative nameserver over the DNS protocol) is a dual stackmachines also running IPv4. Until the IPv6 Internet is ubiquitous, anauthoritative nameserver will still be answering (A) requests forv4-content. Thus, the “right” answer to an A-request from a v6 CCNS isthe same answer that should be provided from the authoritativenameserver back to the CCNS if the request came in over v4. Wheremapping is based on DNS request source IP, the IPv6 nameserver needs toobtain a correlation between the v4 and v6 addresses of a dual stackCCNS and use that correlation to hand back an appropriate answer. Thev4-v6 correlation enables the IPv6 authoritative nameserver to respondcorrectly to requests sent over IPv6, and it further provides a basisfor understanding the topology of the IPv6 Internet.

According to this disclosure, the CCNS IPv4-IPv6 correlation is obtainedas follows. When an authoritative nameserver returns a quad-A (AAAA)record for an authority, preferably it embeds the v4 IP address of therequesting CCNS in the low order bits of the IPv6 name server address towhich it delegates. The authoritative nameserver “knows” the IPv4address of the CCNS because the request is being made over IPv4. Theencoding may be performed in one of several ways, such as placing the 32bit IPv4 address unmodified in the lowest 32 bits of the IPv6 address,encrypting the IPv4 address in the low-order bits of the IPv6 address(using as many bits as desired), cryptographically hashing the IPv4address into the low-order bits of the IPv6 address (using as many bitsas desired), or in any other convenient manner. Regardless of whetherthe IPv4 address is unmodified, encrypted or hashed, it may also bedesired to digitally sign either the IPv4 address or its encoding intoadditional low-order bits of the IPv6 address. For example, and withoutlimitation, the resulting 128 bit IPv6 nameserver address could becomposed (as a concatenation from high-order to low-order bits) asfollows: bits 64-127 (IPv6 address space routed to a single IPv6-capablenameserver)|bits 32-63 (cryptographic signature of the CCNS IPv4address)|bits 0-31 (IPv4 address of the CCNS).

FIG. 3 illustrates how an organization can determine the IPv4 address ofIPv6 CCNSs that contact it. In this example, CCNS 300 is a dual-stackmachine. GTLD 302 represents the global top level domain, referencenumeral 304 represents an authority for the organization (e.g.,“example.com”) that operates over IPv4, and reference numeral 306 is anauthority for a sub-domain (e.g., “h.example.com”) that operates overIPv6. At step 1, the CCNS 300 attempts to look up a.h.example.com byfirst asking the GTLD 302 over IPv4 or IPv6. The query is as follows:

-   -   {CCNS}->{GTLD} Q a.h.example.com IN A        At step 2, the GTLD 302 answers with the authority and        additional records for example.com, which are all IPv4        nameservers (in this scenario):

{GTL}->{CCNS} AUTH example.com. IN HS ns1.example.com.

-   -   ADDL ns1.example.net. IN A {ns1}        At step 3, the CCNS 300 attempts to lookup a.h.example.com by        asking of example.com's IPv4 authoritative nameservers:

v4 {CONS}->{ns1} Q a.h.example.com IN A

At step 4, the authoritative nameservers for example.com return adelegation to authorities for h.example.com. In this scenario, some ofthe authorities are IPv4 servers and some are IPv6 servers. As describedabove, preferably the IPv6 server addresses contain the CCNS's IPv4address and a cryptographic signature of the same in the lower bits,represented here as “CCNSDATA”:

v4 {ns1}->{CCNS} AUTH h.example.com. IN NS ns2.h.example.com

-   -   h.example.com. IN NS ns4.h.example.com.    -   ADLL ns2.h.example.com IN A {ns2}    -   ns4.h.example.com IN AAAA {ns4::CCNSDATA}        At step 5, if the CCNS 300 speaks IPv6, it will lookup        a.h.example.com against the IPv6 authorities provided,        contacting them on their specially constructed address:

v6 {CCNS}->{ns4::CCNSDATA} Q a.h.example.com IN A

At step 6, the IPv6 authority for a.h.example.com now knows both theIPv4 and IPv6 address of the CCNS based on the encoded information andthe source IP address of the IPv6 packet used to make the DNS request.The server may then use this information in making its response to theCCNS (but it need not do so). The answer may be any typical DNS answer,such as an (A) record, an (AAAA) record, a CNAME record, or the like:

v6 {ns4:CCNSDATA}->{CCNS} ANS a.h.example.com IN A 10.0.0.1

FIG. 4 illustrates a more concrete example in a content delivery network(CDN) that operates a multi-tiered approach wherein first levelnameservers provide delegations second (or next) level nameservers. Inthis scenario, it is assumed that only IPv4 authorities are listed atthe GTLD (not shown). The CCNS 400 is seeking a resolution for thedomain aN.g.akamaitech.net. The CCNS 400 IPv4 address is 1.2.3.4, andits IPv6 address is 1111::4444. At step 1, CCNS 400 makes a query to aCDN first level 402 at IPv4 address 4.3.2.1. At step 2, the first levelreturns the authority and an additional section, the latter includingthe IPv4 encoding of the CCNS as previously described. At step 3, theCCNS makes an IPv6 request to the authoritative nameserver 404 (also adual-stack machine) at its IPv6 address 9999::0000/80. The reference to/80 refers to a number of bits of the IPv6 that are relevant. When arequest arrives for an (A) record, the nameserver first extracts the v4IP address of the CCNS and verifies the request is legitimate. If therequest passes validity checking, the v4 IP address is used to look upmapping and the second level nameserver responds accordingly, such asillustrated at step 4. (If the packets fails to authenticate, preferablya mapping based on some fixed v4 IP is returned).

The IPv6 capable authoritative nameserver is aware that the low-order(e.g., 48) bits are used to securely embed the IPv4 address. When arequest comes in from an IPv6 CCNS, the authoritative name serverextracts the v4 IP address from the low order bits of the address theIPv6 CCNS used to contact it. Using the IPv4 address of the CCNS makingthe request (over IPv6), the authoritative nameserver looks up theanswer and responds accordingly. Because the authoritative nameserver isextracting the v4-v6 correlation in the normal course of responding torequests, the nameserver can also write a log file. This informationcorrelates the v4 and v6 IP space. The v4-v6 correlation is maintainedin a memory as a data record, a table, an array, a linked list, or otherconvenient data structure, and the information can be used to giveanswers to v4 nameservers asking for AAAA records and for v6 nameserversasking for A records.

The above-described technique for learning the association between anend-user client IP address and the IP address of the CCNS that client isusing for DNS service. It is assumed that the CCNS supports IPv6, asdoes a CDN edge server such as shown in FIG. 2. As known in the art, aCDN name service is responsive to a CCNS-supplied CDN hostname andreturns (to the requesting client, through the CCNS) an IP addressassociated with one or more CDN edge servers (typically within a given“region” or set of such servers) that can respond to a subsequentcontent request issued from that requesting client. When the requestingclient then makes a request to the IP address associated with the CDNedge server, it also passes its own IP address. Thus, if the IPv6address of the CCNS is encoded in the response address issued by the CDNname service, and if the CDN edge server uses IPv6, the CDN edge servercan link up the client IP with the CCNS IP (that initially contacted theCDN name service), which provides a client/CCNS association. Thisassociation may be saved for future use (e.g., traffic managementdecisions, analysis, reporting, or the like).

To enhance security of the above-described embedding scheme, it may bedesired to use a shared key accessible to the authoritative IPv6nameservers. The key may be rotated periodically (e.g., daily) andtime-stamped so that top level name servers that delegate to theauthoritative nameservers start using the key only after allauthoritative nameservers have received it. Preferably, theauthoritative nameserver maintains the current key and a previous key sothat is can decode correctly during a key transition.

While the above-described correlation technique has been described inthe context of a specific type of DNS request (e.g., for an A record inIPv4, or for an AAAA record in IPv6), this is not a limitation. Thetechnique can be performed for any type of request (e.g., NS, SOA, PTR,MX, TXT, etc.), as the delegated authorities for a zone must be able toanswer any name for that zone.

Moreover, while the above-described technique is described in thecontext of an authoritative nameserver that maps (a DNS query to IPaddress) based on DNS request source IP, the technique may beimplemented on or in association with a nameserver that maps withoutresort to source IP data. Thus, the correlation technique is not limitedfor use with any particular type of mapping system or functionality.

Further, while in a preferred embodiment a first level authority isIPv4-based and returns both IPv4 and IPv6 authorities as the delegatedzone authorities, this is not a limitation, as the first level authoritymay return only IPv6 authorities. Thus, more generally, the first levelauthority returns at least one IPv6 authority and any number (zero ormore) IPv4 authorities.

While the above describes a particular order of operations performed bycertain embodiments of the invention, it should be understood that suchorder is exemplary, as alternative embodiments may perform theoperations in a different order, combine certain operations, overlapcertain operations, or the like. References in the specification to agiven embodiment indicate that the embodiment described may include aparticular feature, structure, or characteristic, but every embodimentmay not necessarily include the particular feature, structure, orcharacteristic.

While the disclosed subject matter has been described in the context ofa method or process, the subject matter also relates to apparatus forperforming the operations herein. This apparatus may be a particularmachine that is specially constructed for the required purposes, or itmay comprise a computer otherwise selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a computer readable storage medium, such as, but is notlimited to, any type of disk including an optical disk, a CD-ROM, and amagnetic-optical disk, a read-only memory (ROM), a random access memory(RAM), a magnetic or optical card, or any type of media suitable forstoring electronic instructions, and each coupled to a computer systembus. A given implementation of the present invention is software writtenin a given programming language that runs in conjunction with aDNS-compliant name server (e.g., BIND) on a standard Intel hardwareplatform running an operating system such as Linux. The functionalitymay be built into the name server code, or it may be executed as anadjunct to that code. A machine implementing the techniques hereincomprises a processor, computer memory holding instructions that areexecuted by the processor to perform the above-described name servermethods. The machine also includes data in the form of authority sets.

While given components of the system have been described separately, oneof ordinary skill will appreciate that some of the functions may becombined or shared in given instructions, program sequences, codeportions, and the like.

Representative machines on which the subject matter herein is providedmay be Intel Pentium-based computers running a Linux or Linux-variantoperating system and one or more applications to carry out the describedfunctionality. One or more of the processes described above areimplemented as computer programs, namely, as a set of computerinstructions, for performing the functionality described.

Having described our invention, what we claim is as follows:
 1. Amethod, comprising: in response to receipt at a first level authority ofa first request for a domain, the first level authority operative withina nameserver hierarchy, the first request including an IPv4 sourceaddress of a caching nameserver making the first request, returning tothe caching nameserver information identifying at least an IPv6authority and zero or more IPv4 authorities, where the IPv4 sourceaddress of the caching nameserver is encoded in an IPv6 address of theIPv6 authority; receiving, at the IPv6 authority that is a second levelauthority within the nameserver hierarchy, a second request, the secondrequest having associated therewith an IPv6 address of the cachingnameserver that includes the IPv4 source address of the cachingnameserver encoded therein; at the IPv6 authority, saving, as anIPv4-to-IPv6 correlation, an association between the IPv4 source addressof the caching nameserver and the IPv6 address of the cachingnameserver; and thereafter using the saved IPv4-to-IPv6 correlation toprovide one of: an answer to an IPv4 nameserver asking for a firstrecord type, and an answer to an IPv6 nameserver asking for a secondrecord type.
 2. The method as described in claim 1 wherein the firstrecord type is an AAAA record, and the second record type is an Arecord.
 3. The method as described in claim 1 further including the IPv6authority verifying the second request prior to responding to the secondrequest.
 4. The method as described in claim 1 wherein the IPv4 sourceaddress of the CCNS is encoded by placing a 32 bit IPv4 addressunmodified in the lowest 32 bits of the IPv6 address.
 5. The method asdescribed in claim 1 wherein the IPv4 source address of the CCNS isencoded by encrypting the IPv4 address in low-order bits of the IPv6address.
 6. The method as described in claim 1 wherein the IPv4 sourceaddress of the CCNS is encoded by cryptographically hashing the IPv4address into low-order bits of the IPv6 address.
 7. The method asdescribed in claim 1 wherein the IPv6 address of at least one of theIPv6 authorities also includes a digital signature of the IPv4 addressor an encoding of the IPv4 address.
 8. An article comprising anon-transitory machine readable medium that stores a program, theprogram being executed to perform a set of operations comprising: inresponse to receipt at a first level authority of a first request for adomain, the first level authority operative within a nameserverhierarchy, the first request including an IPv4 source address of acaching nameserver making the first request, returning to the cachingnameserver information identifying at least an IPv6 authority and zeroor more IPv4 authorities, where the IPv4 source address of the cachingnameserver is encoded in an IPv6 address of the IPv6 authority;receiving, at the IPv6 authority that is a second level authority withinthe nameserver hierarchy, a second request, the second request havingassociated therewith an IPv6 address of the caching nameserver thatincludes the IPv4 source address of the caching nameserver encodedtherein; at the IPv6 authority, saving, as an IPv4-to-IPv6 correlation,an association between the IPv4 source address of the caching nameserverand the IPv6 address of the caching nameserver; and thereafter using thesaved IPv4-to-IPv6 correlation to provide one of: an answer to an IPv4nameserver asking for a first record type, and an answer to an IPv6nameserver asking for a second record type.
 9. The article as describedin claim 8 wherein the first record type is an AAAA record, and thesecond record type is an A record.
 10. Apparatus, comprising: aprocessor; and computer memory holding computer program instructionsexecuted by the processor, the computer program instructions comprisingprogram code configured to: in response to receipt at a first levelauthority of a first request for a domain, the first level authorityoperative within a nameserver hierarchy, the first request including anIPv4 source address of a caching nameserver making the first request,return to the caching nameserver information identifying at least anIPv6 authority and zero or more IPv4 authorities, where the IPv4 sourceaddress of the caching nameserver is encoded in an IPv6 address of theIPv6 authority; receive, at the IPv6 authority that is a second levelauthority within the nameserver hierarchy, a second request, the secondrequest having associated therewith an IPv6 address of the cachingnameserver that includes the IPv4 source address of the cachingnameserver encoded therein; at the IPv6 authority, save, as anIPv4-to-IPv6 correlation, an association between the IPv4 source addressof the caching nameserver and the IPv6 address of the cachingnameserver; and thereafter use the saved IPv4-to-IPv6 correlation toprovide one of: an answer to an IPv4 nameserver asking for a firstrecord type, and an answer to an IPv6 nameserver asking for a secondrecord type.
 11. The apparatus as described in claim 10 wherein thefirst record type is an AAAA record, and the second record type is an Arecord.